원래는 블로그 전체를 하나의 저장소로 관리했다. 하지만 블로그 설정 파일이 너무 많기도 하고 자주 변경되지 않는 파일들이 많아서 저장소를 분리하기로 했다.
저장소 분리
먼저 기존의 블로그 글 저장소에서 블로그 글이 저장된 경로를 subtree로 분리했다.
블로그 작성을 위한 저장소의 경로를 만들어서 이동한다.
기존의 블로그 글을 분리한 브랜치를 가져온다.
GitHub CLI를 이용해 새로운 저장소를 만든다.
마지막으로 이제 기존 블로그 저장소에서 글이 저장된 경로를 삭제한다.
자동 동기화
새로운 저장소에 글을 작성하고 나면 기존의 블로그 저장소에도 동일한 글을 추가해야 한다. 이를 자동으로 동기화하기 위해 GitHub Actions를 이용했다.
GitHub Personal Access Token
먼저 GitHub Personal Access Token을 만들어야 한다. GitHub에 로그인한 상태에서 Settings > Developer settings > Personal access tokens 페이지로 이동한다. Generate new token 버튼을 눌러 새로운 토큰을 만든다. 이때 기존 Classic 토큰과 Fine-grained 토큰을 선택할 수 있다. Classic 토큰에 비해 Fine-grained 토큰은 더 세부적인 권한을 설정할 수 있으므로 후자를 추천한다. Classic 토큰을 선택했다면 repo 권한만 선택하면 되고, Fine-grained 토큰을 선택했다면 기존 블로그 저장소와 새로운 블로그 글 저장소에 대한 권한을 선택하면 된다. 토큰을 생성하고 나면 그 직후에만 토큰을 볼 수 있으므로 토큰을 복사해두자.
GitHub Actions
Secrets
방금 만든 PAT를 GitHub Actions에서 사용할 수 있도록 저장소에 등록해야 한다. 저장소의 Settings > Secrets and variables > Actions 페이지로 이동한다. Repository secrets의 New repository secret 버튼을 눌러 새로운 비밀값을 만든다. 이름에는 GitHub Actions에서 사용할 이름을, 값에는 방금 복사한 PAT를 입력하면 된다.
Workflow
로컬 저장소의 .github/workflows/pushed.yml 파일을 만들어 다음과 같이 작성했다.